The well known Hough transform was originally used as a method for detecting lines in images. The Hough transform has since been generalized to detecting, as well as recognizing, many other objects: parameterized curves, arbitrary 2D shapes, cars, pedestrians, hands and 3D shapes, to name but a few. This popularity stems from the simplicity and generality of the first step of the Hough transform—the conversion of features, found in the data space, into sets of votes in a Hough space, parameterized by the pose of the object(s) to be found. Various different approaches to learning this feature to-vote conversion function have been proposed.
The second stage of the Hough transform sums the likelihoods of the votes at each location in Hough space, then computes the modes (i.e. the local maxima) in the Hough space.